Beginnen met .NET Core
.NET core is de nieuwe versie van .NET en deze versie is open source. Dat is dan ook de reden dat deze versie niet gewoon doorgenummerd is, maar een nieuwe naam heeft gekregen.
In deze module leren we werken met .NET Core 2.2.
In dit artikel doorlopen we de verschillende beschikbare programmeertools om .NET Core applicaties te schrijven. We beginnen met de commando-hulpprogramma's die met de SDK worden meegeleverd. Je kan die koppelen aan om het even welke editor. Dan gaan we in op de nieuwe mogelijkheden van Visual Studio 2017 en van het nieuwste lid van de Visual Studio-familie, Visual Studio voor Mac. We eindigen met te laten zien hoe deze tools je in staat stellen om software-containers te gebruiken en je apps naadloos te integeren op Cloud9 workspaces. We hadden dat ook graag gedaan voor de Microsoft Azure-cloud maar daarvoor heb je een credietkaart nodig.
Wat is het?
Vroeger moest je om .NET toch op Linux te kunnen laten draaien, gebruik maken van het open source project Mono. Dit ondersteunt de belangrijkste kenmerken maar het beschikt niet over support vanuit Microsoft. Deze release van .NET Core is deel van Microsofts nieuwe strategie om het .NET ontwikkelplatform open source te maken. Microsoft laten weten dat meer dan de helft van de bijdragen aan het platform nu al van buiten Microsoft komt.
.NET core is beschikbaar voor:
- Windows;
- OS X;
- Linux;
Bronnen
Immo Landwerth, .NET Standard - Demystifying .NET Core and .NET Standard, September 2017
Andrew Hall & Joe Morris, .NET Core - Write .NET Apps How and Where You Want, September 2017
Eerst wat uitleg
Het gemeenschappelijke Project bestand
Voor deze opdrachten gebruiken we .NET Core 2.2. Zorg ervoor dat je lokaal en op Cloud9 dezelfde versie hebt staan! Als je in het lesmateriaal nog ergens een oudere versie tegenkomt moet je dat negeren en door .NET Core 2.2 vervangen.
.NET Core-projecten delen een zeer vereenvoudigd gemeenschappelijk projectformaat. Dit betekent dat een project, dat is gemaakt met een hulpprogramma (bijvoorbeeld de commando-hulpprogramma's) werkt op alles wat .NET Core, zoals Visual Studio of Visual Studio for Mac, werkt. Met het nieuwe projectbestandformaat is de noodzaak voor GUID's en voor het expliciete oplijsten van dependencies niet meer nodig. Dat verkleint het risico op merge-conflicten bij het uitvoeren van updates voor versiecontrole. Een voorbeeld:
Console applicatie
De volgende code toont de inhoud van het projectbestand voor een nieuwe C # .NET Core-console app op Cloud9, een Linux VPS:

Het eerste bestand, dat we bekijken, is het projectbestand zelf - het .csproj bestand. Dit bestand vertelt MSBuild hoe het project wordt gebouwd - van welke pakketten het afhankelijk is, welke versie van .NET Core te targeten, enzovoort.
In vorige versies van .NET Core was dit projectbestand veel groter. Vanaf .NET Core 2.0 werd veel moeite gestoken in het korter, eenvoudiger en leesbaarder maken van .csproj-bestanden. Bronbestanden moeten niet langer expliciet moeten worden vermeld. De .NET Core SDK compileert automatisch alle .cs-bestanden die in de map van het projectbestand staan of in een directory onder de .csproj-directory.
Op dezelfde manier zullen eventuele .resx-bestanden worden ingebed als bronnen. Als je liever niet alle .cs-bestanden wilt compileren, kanu ze uit de Compile ItemGroup verwijderen of de standaard compile-items volledig uitschakelen door de eigenschap EnableDefaultCompileItems
op false
te zetten.
En hier vind je het zelfde bestand maar nu in Visual Studio voor Windows:

Hier is de code:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> </Project>
Eenvoudige ADO.NET applicatie
Toen ik met de voorbereiding bezig was voor deze module wou ik als voorbeeld een eenvoudige ADO.NET applicatie op Cloud9 maken. Het was niet eenvoudig om het projectbestand samen te stellen. Op internet is nog zo heel veel te vinden over .NET Core 2.0. Vooral omdat ik een voorbeeld met MySQL wilde geven. Toen kwam ik op het idee om het project eerst in Visual Studio lokaal op mijn PC te maken en het projectbestand te laten maken door VS. Het is immers gemakkelijk om de dependencies in Visual Studio te installeren met behulp van de NuGet Package Manager. Zo gezegd zo gedaan. Na het installeren van MySQL libraries had ik mijn projectfile:

Het volstaat nu het bestand te verplaatsen naar Cloud9:

Ik heb geen letter aan het projectbestand veranderd en ik heb de instellingen om op Cloud9 ADO.NET met MySQL te kunnen gebruiken.
Aan de slag met .NET Core
Je hebt verschillende mogelijkheden om .NET Core programma's te maken: